package com.yuandian.business.monitor.controller;

import com.yuandian.api.business_monitor.po.E2eStudyCollect;
import com.yuandian.api.business_monitor.po.E2eStudyParam;
import com.yuandian.bpm.common.core.util.R;
import com.yuandian.business.monitor.service.IE2eStudyTaskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * 说明：端到端学习任务controller
 * @Author zfsn
 * @Date 2023/7/12 14:16
 */
@RestController
@RequestMapping("/study/e2e/task")
public class E2eStudyTaskController {

    @Autowired
    private IE2eStudyTaskService eStudyTaskService;

    /**
     * 分页查询端到端学习任务列表
     * @param param 端到端学习请求参数
     * @return 通用返回结果
     */
    @PostMapping("/page")
    public R page(@RequestBody E2eStudyParam param) {
        return eStudyTaskService.page(param);
    }

    /**
     * 下载样本数据
     * @param param 端到端学习请求参数
     * @param response 响应上下文
     */
    @PostMapping("/download/sample")
    public void downloadSample(@RequestBody E2eStudyParam param, HttpServletResponse response) throws IOException {
        eStudyTaskService.downloadSample(param, response);
    }

    /**
     * 汇总查询
     * @param param 端到端学习请求参数
     * @return 通用返回结果
     */
    @PostMapping("/collect")
    public R collect(@RequestBody E2eStudyParam param) {
        return eStudyTaskService.collect(param);
    }

    /**
     * 同步配置给步骤端到端学习
     * @param list 端到端学习汇总对象集合
     * @return 通用返回结果
     */
    @PostMapping("/sync")
    public R sync(@RequestBody List<E2eStudyCollect> list) {
        return eStudyTaskService.sync(list);
    }
}
